#!/usr/bin/env bash

prep() {
    %autosetup -n %{name}-%{version} -p1
    cp %{SOURCE200} %{SOURCE210} %{SOURCE10} %{SOURCE12} .
    cp -a ../%{name}-%{version} ../%{name}-%{version}-%{release}-src
    mv ../%{name}-%{version}-%{release}-src .
}

build() {
    export DESTDIR=%{buildroot}
    nginx_ldopts="$RPM_LD_FLAGS -Wl,-E -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack"
    nginx_ccopts="-fPIC -D_FORTIFY_SOURCE=2 -O2 -Wtrampolines -fsigned-char"
    configure
    
    %make_build
}

configure() {
    ./configure \
      --sbin-path=%{_sbindir}/nginx \
      --modules-path=%{_libdir}/nginx/modules \
      --conf-path=%{_sysconfdir}/nginx/nginx.conf \
      --error-log-path=%{_localstatedir}/log/nginx/error.log \
      --http-log-path=%{_localstatedir}/log/nginx/access.log \
      --http-client-body-temp-path=%{_localstatedir}/lib/nginx/tmp/client_body \
      --http-fastcgi-temp-path=%{_localstatedir}/lib/nginx/tmp/fastcgi \
      --http-proxy-temp-path=%{_localstatedir}/lib/nginx/tmp/proxy \
      --http-scgi-temp-path=%{_localstatedir}/lib/nginx/tmp/scgi \
      --http-uwsgi-temp-path=%{_localstatedir}/lib/nginx/tmp/uwsgi \
      --pid-path=/run/nginx.pid \
      --lock-path=/run/lock/subsys/nginx \
      --user=%{nginx_user} \
      --group=%{nginx_user} 
    
}

install() {
    %make_install INSTALLDIRS=vendor
    
    find %{buildroot} -type f -empty -exec rm -f '{}' \;
    find %{buildroot} -type f -name .packlist -exec rm -f '{}' \;
    find %{buildroot} -type f -name perllocal.pod -exec rm -f '{}' \;
    find %{buildroot} -type f -iname '*.so' -exec chmod 0755 '{}' \;
    
    pushd %{buildroot}
    install -p -D -m 0644 %{_builddir}/nginx-%{version}/nginx.service .%{_unitdir}/nginx.service
    install -p -D -m 0644 %{SOURCE11} .%{_sysconfdir}/logrotate.d/nginx
    install -p -d -m 0755 .%{_sysconfdir}/systemd/system/nginx.service.d
    install -p -d -m 0755 .%{_unitdir}/nginx.service.d
    install -p -d -m 0755 .%{_sysconfdir}/nginx/conf.d
    install -p -d -m 0755 .%{_sysconfdir}/nginx/default.d
    install -p -d -m 0700 .%{_localstatedir}/lib/nginx
    install -p -d -m 0700 .%{_localstatedir}/lib/nginx/tmp
    install -p -d -m 0700 .%{_localstatedir}/log/nginx
    install -p -d -m 0755 .%{_datadir}/nginx/html
    install -p -d -m 0755 .%{_datadir}/nginx/modules
    install -p -d -m 0755 .%{_libdir}/nginx/modules
    install -p -m 0644 %{_builddir}/nginx-%{version}/nginx.conf .%{_sysconfdir}/nginx
    install -p -m 0644 %{SOURCE100} .%{_datadir}/nginx/html
    install -p -m 0644 %{SOURCE102} .%{_datadir}/nginx/html
    install -p -m 0644 %{SOURCE103} %{SOURCE104} .%{_datadir}/nginx/html
    
    %if 0%{?with_mailcap_mimetypes}
    rm -f .%{_sysconfdir}/nginx/mime.types
    %endif
    
    install -p -D -m 0644 %{_builddir}/nginx-%{version}/man/nginx.8 .%{_mandir}/man8/nginx.8
    install -p -D -m 0755 %{SOURCE13} .%{_bindir}/nginx-upgrade
    popd
    
    for i in ftdetect indent syntax; do
    install -p -D -m644 contrib/vim/${i}/nginx.vim %{buildroot}%{_datadir}/vim/vimfiles/${i}/nginx.vim
    done
    
    %if %{with geoip}
    echo 'load_module "%{_libdir}/nginx/modules/ngx_http_geoip_module.so";' \
        > %{buildroot}%{_datadir}/nginx/modules/mod-http-geoip.conf
    %endif
    
    pushd %{buildroot}
    echo 'load_module "%{_libdir}/nginx/modules/ngx_http_image_filter_module.so";' \
        > .%{_datadir}/nginx/modules/mod-http-image-filter.conf
    echo 'load_module "%{_libdir}/nginx/modules/ngx_http_perl_module.so";' \
        > .%{_datadir}/nginx/modules/mod-http-perl.conf
    echo 'load_module "%{_libdir}/nginx/modules/ngx_http_xslt_filter_module.so";' \
        > .%{_datadir}/nginx/modules/mod-http-xslt-filter.conf
    echo 'load_module "%{_libdir}/nginx/modules/ngx_mail_module.so";' \
        > .%{_datadir}/nginx/modules/mod-mail.conf
    echo 'load_module "%{_libdir}/nginx/modules/ngx_stream_module.so";' \
        > .%{_datadir}/nginx/modules/mod-stream.conf
    popd
    
    mkdir -p %{buildroot}%{_usrsrc}
    mv %{name}-%{version}-%{release}-src %{buildroot}%{_usrsrc}/%{name}-%{version}-%{release}
    
    mkdir -p %{buildroot}%{_rpmmacrodir}
    sed -e "s|@@NGINX_ABIVERSION@@|%{version}|g" \
        -e "s|@@NGINX_MODDIR@@|%{_libdir}\/nginx\/modules|g" \
        -e "s|@@NGINX_MODCONFDIR@@|%{_datadir}\/nginx\/modules|g" \
        -e "s|@@NGINX_SRCDIR@@|%{_usrsrc}\/%{name}-%{version}-%{release}|g" \
        %{SOURCE14} > %{buildroot}%{_rpmmacrodir}/macros.nginxmods
    install -Dpm0644 %{SOURCE15} %{buildroot}%{_fileattrsdir}/nginxmods.attr
}

